/* 使用request方法像其他网站请求数据 */

var http = require('http');

var options = {
	hostname: 'www.amicrosoft.com',
	port: 80,
	path: '/',
	method: 'GET'
};

var req = http.request(options, function(res){
	// res-- IncomingMessage对象

	console.log("statusCode: " + res.statusCode);

	// console.log("header: " + JSON.stringify(res.headers));
	// console.log("header: %j", res.headers)
	console.log("header: ", res.headers);

	res.setEncoding('utf8');

	res.on('data', function(data){
		console.log("content: " + data);
	})
});

// ENOTFOUND
// ETIMEDOUT
// ECONNRESET
req.on("error", function(err){
	if(err.code === "ECONNRESET"){
		console.log("socket timeout");
	}
	else{
		console.log("error, " + err.code);
	}
});


// 超时处理1：
// socket事件--在建立连接过程中，当为该连接分配端口时触发
// req.on('socket', function(socket){
// 	socket.setTimeout(4000);
// 	socket.on('timeout', function(){
// 		// abort方法--终止本次请求
// 		req.abort();
// 	})
// });


// 超时处理2：
req.setTimeout(4000, function(){
	req.abort();
});



// end方法--结束本次请求
req.end();